/*
 *
 *1项目简介+
创建项目、添加项目资源

项目基本配置。
设置背 景图标
设 置固定大小中

设置项目标题

设置背景

背景标题

开始菜单-退出功能
创建开始按钮
封装自定义按钮 MyPushButton+
构造函数 ( 默认显示图片，按下后显示的图片)
测试开始按钮

开始制作特效

zoom1向下跳

zoom2向上跳

 */


#include "mainscene.h"
#include "ui_mainscene.h"
#include<QPainter>
#include"mypushbutton.h"
#include<QTimer>
#include<QSound> //多媒体音效下的头文件
MainScene::MainScene(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainScene)
{
    ui->setupUi(this);
    //设置主场景
    setWindowIcon(QIcon(":/res/Coin0001.png"));
    setWindowTitle("返金币游戏测试");
    setFixedSize(320,588);

    //实现退出
    connect(ui->actionquit,&QAction::triggered,[=](){
        this->close();
    });

    //准备开始按钮
    QSound *startSound=new QSound(":/res/TapButtonSound.wav",this);
    //使用自定义封装的按钮
    MyPushButton *startBtn=new MyPushButton(":/res/MenuSceneStartButton.png");
    startBtn->setParent(this);
    //按钮放在中间
    startBtn->move(this->width()*0.5-startBtn->width()*0.5,this->height()*0.7);

    //实例化 选择关卡
    chooseScene=new ChooseLevelScene;


    connect(startBtn,&QPushButton::clicked,[=](){
        //播放开始的音效
        startSound->play();
        //startSound->setLoops(10);//循环的次数 -1为无限循环

       //做弹跳特效
        startBtn->zoom1();
        startBtn->zoom2();


        //进入场景

        //延时进入到选择关卡
        //使用QTime 的成员函数
        QTimer::singleShot(500,this,[=](){
            //设置chooseScene场景的位置
            chooseScene->setGeometry(this->geometry());

            //将自身隐藏
            this->hide();
            //显示
            chooseScene->show();

        });

    });
    //监听选择关卡的返回按钮信号
    connect(chooseScene,&ChooseLevelScene::chooseSceneBack,[=](){
        this->setGeometry(chooseScene->geometry());
        //利用计时器做一个延时返回
        QTimer::singleShot(500,this,[=](){
        chooseScene->hide();
        this->show();
        });
    });

}
void MainScene::paintEvent(QPaintEvent*)
{
    //创建 一个画家类
    QPainter painter(this);
    //创建一个QPixmap类 是为在屏幕上显示图像而设计和优化的。
    QPixmap pix;
    //加载图片
    pix.load(":/res/PlayLevelSceneBg.png");
    //用画家把图片画在屏幕上
    //painter.drawPixmap(0,0,pix);//没有按照照片原始比例添加到窗口上
    //把图片拉伸到窗口的大小
    painter.drawPixmap(0,0,this->width(),this->height(),pix);
    //画背景图标
    QPixmap pix1;
    pix1.load(":/res/Title.png");
    //缩放图片
    pix1=pix1.scaled(pix1.width()*0.5,pix1.height()*0.5);
    painter.drawPixmap(10,30,pix1);


}
MainScene::~MainScene()
{
    delete ui;
}

